Skip to content

Base64

小さな base64 モジュールで、base64 テキストをエンコードまたはデコードします。

注意: 大きなテキストチャンクに対してキャッシングを有効にすることをお勧めします。最大で x2 の最適化が可能です。

Example usage

lua
local base64 = require(".base64")

local str = "This will be encoded"

-- is: "VGhpcyB3aWxsIGJlIGVuY29kZWQ="
local encoded = base64.encode(str)

-- is: "This will be encoded"
local decoded = base64.decode(encoded)

assert(decoded == str)

Module functions

encode()

この関数は、提供された文字列をデフォルトのエンコーダーテーブルを使用してエンコードします。エンコーダーはカスタマイズ可能で、より大きなデータチャンクに対してキャッシュが利用可能です。

  • パラメーター:
    • str: {string} エンコードする文字列
    • encoder: {table} オプションのカスタムエンコーディングテーブル
    • usecache: {boolean} 大きな文字列用のオプションのキャッシュ(デフォルトではオフ)
  • 戻り値: Base64 エンコードされた文字列

Examples

lua
-- prints: "SGVsbG8gd29ybGQ="
print(base64.encode("Hello world"))

-- customize encoder and allow caching
base64.encode(
  "Hello world",
  base64.makeencoder(nil, "-"),
  true
)

decode()

この関数は、提供された Base64 エンコードされた文字列をデフォルトのデコーダーテーブルを使用してデコードします。デコーダーはカスタマイズ可能で、ここでもキャッシュが利用可能です。

  • パラメーター:
    • str: {string} デコードする Base64 エンコードされた文字列
    • decoder: {table} オプションのカスタムデコーディングテーブル
    • usecache: {boolean} 大きな文字列用のオプションのキャッシュ(デフォルトではオフ)
  • 戻り値: デコードされた文字列

Examples

lua
-- prints: "Hello world"
print(base64.decode("SGVsbG8gd29ybGQ="))

-- customize decoder and allow caching
base64.decode(
  "SGVsbG8gd29ybGQ=",
  base64.makedecoder(nil, "-"),
  true
)

makeencoder()

新しいエンコーダーテーブルを作成し、encode() 関数の結果をカスタマイズします。

  • パラメーター:
    • s62: {string} オプションのカスタム文字 (デフォルトは +)
    • s63: {string} オプションのカスタム文字 (デフォルトは /)
    • spad: {string} オプションのカスタムパディング文字 (デフォルトは =)
  • 戻り値: カスタムエンコーダーテーブル

Examples

lua
-- create custom encoder
local encoder = base64.makeencoder(nil, nil, "~")

-- prints "SGVsbG8gd29ybGQ~" instead of "SGVsbG8gd29ybGQ="
print(base64.encode("Hello world", encoder))

makedecoder()

カスタムエンコードされた custom-encoded base64 文字列をデコードできる新しいデコーダーテーブルを作成します。

  • パラメーター:
    • s62: {string} オプションのカスタム文字 (デフォルトは +)
    • s63: {string} オプションのカスタム文字 (デフォルトは /)
    • spad: {string} オプションのカスタムパディング文字 (デフォルトは =)
  • 戻り値: カスタムデコーダーテーブル

Examples

lua
local encoder = base64.makeencoder(nil, nil, "~")
local decoder = base64.makedecoder(nil, nil, "~")

-- "SGVsbG8gd29ybGQ~"
local encoded = base64.encode("Hello world", encoder)

-- prints "Hello world"
print(base64.decode(encoded, decoder))